//=========系统操作界面===========
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

#include "tlinklist.h"
#include "slinklist.h"
#include "function.h"
#include "filedata.h"
#include "screen.h"

//全局变量
char version[10] = "1.0v";//版本号

//刘海界面
bool Head_Screen()
{
	system("clear");
	printf("\n======欢迎使用学生成绩管理系统%s======\n\n\n",version);
	return true;
}
//登录界面:返回用户类型
char Login_Screen()
{
	Head_Screen();
	printf("\n------> [用户-登录界面] <------\n\n");
	printf("\n0 : 学生登录\n1 : 教师登录\n2 : 校长登录\n3 : 开发人员\n\n9 : 退出系统\n\n");
	printf("\n请选择用户类型:");
	char flag = -1;
	while(1)
	{
		scanf("%hhd",&flag);
		if(flag == 0 || flag == 1 || flag == 2 || flag == 3 || flag == 9)
		{
			return flag;
		}
		printf("\n[注意]用户类型选择有误,请重新选择:");
	}
}

//=======[开发人员流程界面]=======

//登录界面[密码校验]
bool Login_D()
{
	//密码校验
	Head_Screen();
	printf("\n------> [开发人员-登录界面] <------\n\n");
	return Check_Password_D();
}
//功能界面[功能选择]
char Developer_Screen()
{
	//功能选择
	Head_Screen();
	printf("\n------> [开发人员-功能界面] <------\n\n");
	printf("\n0 : 重置校长密码\n1 : 系统初始化(将数据库完全清空)\n\n9 : 返回用户选择界面\n\n");
	printf("\n请选择执行功能:");
	char key = -1;
	while(1)
	{
		scanf("%hhd",&key);
		if(key == 0 || key == 1 || key == 9)
		{
			return key;
		}
		printf("\n[注意]功能选择有误,请重新选择:");
	}
}

//=======[校长流程界面]=======

//登录界面[密码校验]
bool Login_P(pLink PL)
{
	//密码校验
	Head_Screen();
	printf("\n------> [校长-登录界面] <------\n\n");
	return Check_Password_P(PL);
}
//功能界面[功能选择]
char Principal_Screen(pLink PL)
{
	//功能选择
	Head_Screen();
	printf("\n------> [校长-功能界面] <------\n\n");
	printf("\n0 : 逐个导入教师信息\n1 : 查看/修改教师信息\n2 : 查看离职教师信息\n3 : 重置密码\n\n9 : 返回用户选择界面\n\n");
	printf("\n请选择执行功能:");
	char key = -1;
	while(1)
	{
		scanf("%hhd",&key);
		if(key == 0 || key == 1 || key == 2 || key == 3 || key == 9)
		{
			return key;
		}
		printf("\n[注意]功能选择有误,请重新选择:");
	}
}

//=======[教师流程界面]=======

//登录界面[密码校验]
int Login_T(tLink TL)
{
	//密码校验
	Head_Screen();
	printf("\n------> [教师-登录界面] <------\n\n");
	return Check_Password_T(TL);
}
//功能界面[功能选择]
char Teacher_Screen(tLink TL,int cur_id)
{
	//获取当前用户信息
	tNode* t_node = Search_tLink(TL,cur_id);
	//功能选择
	Head_Screen();
	printf("\n------> [教师-功能界面] <------\n\n");
	printf("\n[当前用户] 姓名:%s 工号:%d 电话:%s\n\n",t_node->name,t_node->id,t_node->phone);
	printf("\n0 : 批量导入学生信息(添加)\n1 : 批量导入学生分数(添加)\n2 : 查看/修改学生信息\n3 : 查看退学学生信息\n4 : 查看学生成绩总评\n5 : 重置密码\n\n9 : 返回用户选择界面\n\n");
	printf("\n请选择执行功能:");
	char key = -1;
	while(1)
	{
		scanf("%hhd",&key);
		if(key == 0 || key == 1 || key == 2 || key == 3 || key == 4 || key == 5 ||key == 9)
		{
			return key;
		}
		printf("\n[注意]功能选择有误,请重新选择:");
	}
}

//=======[学生流程界面]=======

//登录界面[密码校验]
int Login_S(sLink SL)
{
	//密码校验
	Head_Screen();
	printf("\n------> [学生-登录界面] <------\n\n");
	return Check_Password_S(SL);
}
//功能界面[功能选择]
char Student_Screen(sLink SL,int cur_id)
{
	//获取当前用户信息
	sNode* s_node = Search_sLink(SL,cur_id);
	//功能选择
	Head_Screen();
	printf("\n------> [学生-功能界面] <------\n\n");
	printf("\n[当前用户] 姓名:%s 学号:%d 电话:%s\n\n",s_node->name,s_node->id,s_node->phone);
	printf("\n0 : 查看自己成绩及排名\n1 : 重置密码\n\n9 : 返回用户选择界面\n\n");
	printf("\n请选择执行功能:");
	char key = -1;
	while(1)
	{
		scanf("%hhd",&key);
		if(key == 0 || key == 1 || key == 9)
		{
			return key;
		}
		printf("\n[注意]功能选择有误,请重新选择:");
	}
}

